iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 9
1

完成主角操作後,今天要來製作攝影機的操作。我們選擇使用的式untiy內建的cinemachine 攝影機操作插件。這款插件將許多基本會用到的功能含括在內,例如我們會用到的的主角跟隨、攝影機移動邊界都有,並且他也提供了不錯的editor介面,方便使用者針對細節做調整。

話不多說,來看看怎麼使用吧!


開始

Step1:

首先要先從package manager將cinemachin插件導入現有專案中
https://ithelp.ithome.com.tw/upload/images/20200914/20130414SqrNL6pIXK.jpg

導入完成後會發現unity頂部多了一排"cinemachine的列表",裡面會有需要使用到的物件選項。
https://ithelp.ithome.com.tw/upload/images/20200914/20130414p7zDSaDw5Y.jpg

Step2:

首先在camera物件上新增"cinemachine brain"元件
https://ithelp.ithome.com.tw/upload/images/20200914/20130414Db8jWYifo5.jpg

Step3:

接著一樣按上方cinemachine按鈕,按下新增virtual camera功能
https://ithelp.ithome.com.tw/upload/images/20200914/20130414zTeJtZo5cC.jpg

這個virtual camera是幹嘛用的呢?剛剛不是已經有創個camera brain了嗎。 可以想像成virtual camera是路上的監視器,而brain則是監控室中的螢幕,可以隨時切換成某一支監視器的觀看畫面!

Step4:

我們想要創立一支監視器,隨時跟著Oka,點開剛創建的virtual camera 物件,將Oka物件拖入Follow及Look At的框中
https://ithelp.ithome.com.tw/upload/images/20200914/20130414KY2l8WpxeC.jpg

Inspector中可以調整orthographic size修改這個監視器的可視範圍。

另外還有個重要參數!priority優先值,當場景中有多支監視器時,監控室的畫面(camera brain 我們看到的畫面) 會優先顯示最高優先度的監視器。
https://ithelp.ithome.com.tw/upload/images/20200914/20130414WnIno4fXlW.jpg


細節調整

目前已經設定好跟隨效果,但發現主角只會固定在畫面正中間

就像多數2D遊戲一樣,我希望Oka在移動時畫面跟隨要有一些緩衝時間、並且也不會固定在正中間,同樣地,這套聰明的插件考量到這些使用情境,已經把相關功能做成圖形化調整欄位。

Step1:

在virtual camera 中有個Aim欄位,能針對追蹤工能做細節微調。比較常用到的是Dead Zone Width 及 Dead Zone Height。調整後的結果會即時顯示在Game視窗中,各顏色範圍分別表示

  • 透明:自由區,主角在這範圍移動,攝影機不會跟隨。
  • 藍色:軟跟隨區,主角移動到這個區域時攝影機移動,使主角保持在透明區。
  • 紅色:死區,主角無法到這個區域,攝影機移動使主角強制保持在紅色區域外。

https://ithelp.ithome.com.tw/upload/images/20200914/2013041459GxCAulS9.jpg

來看看移動狀況

恩!不是死板的卡在中間,效果好多了!


攝影機邊界

接下來要做的第二件事情是為攝影機規劃可以運行的範圍,例如當主角走到牆邊的時候,我希望攝影機能在適當位置停下,不要看到牆壁背後。沒錯!這功能也能在cinemachine中找到。

Step1:

首先要建立一個空物件,我將它命名為camera zone,並需要加入trigger元件,建議使用polygon collider2D能更自由調整邊緣。這個trigger範圍是攝影機可看到範圍,所以在設定時要避免框到不想被看到的區域!
https://ithelp.ithome.com.tw/upload/images/20200914/20130414mxUOsB6Teh.jpg

Step2:

接著回到有用來追蹤主角的virtual camera元件,最下放有個Add Extension,選擇加入CinemachineConfiner
https://ithelp.ithome.com.tw/upload/images/20200914/20130414HWf2LfGNUk.jpg

Step3:

接著把剛剛建立的camera zone物件拖至confiner元件中的Bounding shape2D框中就可以了。

Step4:

下方的Damping可以設定碰到邊緣時的攝影機移動緩衝,如果設為0就是碰到時直接停止。
https://ithelp.ithome.com.tw/upload/images/20200914/20130414ix5nP36ZAh.jpg


到這邊為止,最基本的攝影機操作已經完成。明天將會以進階的攝影機功能為主題作介紹。


上一篇
[Day8] 主角-基本操作(蹬牆跳躍篇)
下一篇
[Day10] 攝影機進階使用
系列文
Unity遊戲開發與實踐-BlueRemedy內容分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言